IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Requêtes SQL pour calcul coûts au KM d'un véhicule


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Requêtes SQL pour calcul coûts au KM d'un véhicule
    Bonjour,

    Je bloque un peu sur une requête qui va surement vous paraître très simple.

    Je suis en train de créer une base de données pour la gestion de notre parc automobile.

    Je veux calculer le coût moyen au km d'un véhicule.

    J'ai donc le "coût d'achat" du véhicule qui est un champ de la table du même nom.

    J'ai une table intervention lié par le "N° d'immatriculation" à la table véhicule et qui contient un champ "Coût de l'intervention"

    J'ai également une table nommé relevé kilométrique avec les champs "Date relevé" et "Nbr de kms" liés également à ma table véhicule par "N° d'immatriculation".

    J'ai une première requête qui me calcul le coût total du véhicule en m'ajoutant le "coût d'achat" de la table véhicule + la somme du champ "Coût d'intervention" de ma table Intervention.

    Le résultat se nomme "Coût total" Je sélectionne le véhicule dont je veux calculer le coût total avec [Saisir N° d'immatriculation] sur ce champ via l'éditeur.

    J'ai créé une requête coût au km du Véhicule qui récupère ce "Coût total" que je divise par le Max du champ "Nbr de Kms" qui créé donc le champ "Coût au Km".

    Ceci fonctionne car il me sort bien mon coût au km mais le soucis c'est qu'au lancement de la requête il me demande mon N° d'immatriculation mais ça c'est normal car je recherche le résultat pour un véhicule donné mais la requête me demande également de saisir le champ "Max de KM" !!!

    Je ne saisie rien et ça me calcul bien le coût au km mais j'aimerai ne pas avoir cette demande de saisi et que ma requête récupère le nombre de km du dernier relevé kilométrique (le Max me le sort) mais peut être que je devrais récupérer mon dernier relevé kilométrique plutôt avec le champ date relevé le plus récent ?

    Si vous avez une solution pour moi ça serait vraiment bien, je me suis remis au SQL mais les cours datent de très longtemps donc je pagaie dans la semoule comme on dit ^^

    Merci de m'avoir lu, si besoin de plus de précisions je suis dispo et merci si vous me postez une réponse avec de l'aide.

    En PJ l'éditeur de ma requête finale.
    Images attachées Images attachées  

  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut ?
    Bonsoir,

    Personne n'a d'idée pour mon soucis de requêtes ?

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    Salut
    Keep cool, svp
    Une remarque : mettre en tant que clé primaire l'immat est d'une absurdité, même si vous m'opposez le fait que l'immat est unique. Vous ne pouvez pas vous imaginez à quel point le type de données NuméroAuto peut faciliter la vie dans des opérations en Sql/Vba.
    Autre remarque : éviter d'utiliser des caractères exotiques et des espaces dans les noms de champs pour faciliter le travail en Sql/Vba. Pour de jolis libellés et lisibles il y a la propriété Légende dans les tbl.
    Si vous vous posez toujours la question pourquoi lorsque j'exécute ma requête, Access me demande de saisir "MaxDeNbr De Kms", c'est parce que ce champ n'est pas présent dans votre grille d'interrogation. C'est d'ailleurs l'Alias donné à votre calcul Max(Nbr de kms). Le problème pourrait peut-être disparaitre si en lieu et place dans le champ Coût du km vous remplaciez Regroupement par Expression.
    Sinon pour éviter de faire des tonnes de requêtes pour faire des calculs et surtout dans votre contexte, je vous conseille d'utiliser DSum()

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 264
    Points : 5 651
    Points
    5 651
    Par défaut
    Bonjour,

    Juste pour vous donner l'une ou l'autre idée, un petit exemple en attaché. Le calcul par km se trouve dans la requête qVehTot2.

    Comme le dit hyperion13 le problème vient sans doute d'une mauvaise conception des tables.
    Pour les requêtes il faut sans doute travailler en plusieurs étapes, comme dans mon exemple.

    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Salut,

    Merci pour vos conseils, je devrais effectivement revoir mes tables.

    J'ai une tonne de formulaire et d'état derrière à refaire mais bon.

    Je regarde mieux ce soir comment je peux arranger le tout.

    Cordialement,

    Franck

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Merci
    Citation Envoyé par hyperion13 Voir le message
    Salut
    Keep cool, svp
    Une remarque : mettre en tant que clé primaire l'immat est d'une absurdité, même si vous m'opposez le fait que l'immat est unique. Vous ne pouvez pas vous imaginez à quel point le type de données NuméroAuto peut faciliter la vie dans des opérations en Sql/Vba.
    Autre remarque : éviter d'utiliser des caractères exotiques et des espaces dans les noms de champs pour faciliter le travail en Sql/Vba. Pour de jolis libellés et lisibles il y a la propriété Légende dans les tbl.
    Si vous vous posez toujours la question pourquoi lorsque j'exécute ma requête, Access me demande de saisir "MaxDeNbr De Kms", c'est parce que ce champ n'est pas présent dans votre grille d'interrogation. C'est d'ailleurs l'Alias donné à votre calcul Max(Nbr de kms). Le problème pourrait peut-être disparaitre si en lieu et place dans le champ Coût du km vous remplaciez Regroupement par Expression.
    Sinon pour éviter de faire des tonnes de requêtes pour faire des calculs et surtout dans votre contexte, je vous conseille d'utiliser DSum()
    Un grand merci ça fonctionne, c'était si simple que ça ^^

    Je suis un peu autodidacte donc je ne maîtrise pas tout voir pas grand chose mais je suis motivé, merci pour la leçon

Discussions similaires

  1. requête SQL pour calculer l'effectif par intervalle de notes
    Par AMKRAZ dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/02/2020, 01h22
  2. [MySQL] Problème de requête SQL pour calculer des stats
    Par k2006 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/05/2009, 19h23
  3. [SqlServer] Requête SQL pour le calcul de la durée!
    Par othland dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/09/2007, 18h29
  4. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 13h21
  5. Requêtes SQL pour access
    Par cciocc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/04/2005, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo