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 :

Problème (honteux) de calcul de somme dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juillet 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2013
    Messages : 43
    Points : 31
    Points
    31
    Par défaut Problème (honteux) de calcul de somme dans une requête
    Bonjour,

    j'ai, il y a quelque temps créer une BDD Access pour gérer les interventions de maintenance dans un hôtel, grâce en partie à ce forum, et je vous en remercie.
    Aujourd'hui, j'ai décidé d'améliorer un peu cette base, en la refaisant un peu plus académiquement, la première version étant plus un empilage de bidouille qu'une réelle base de données.
    J'ai de plus décidé de gérer dynamiquement le stock de pièces utilisé lors des interventions de maintenance.
    j'ai donc refait mes tables, avec des relations solides et réfléchis (intégrité référentielle sur presque chaque relation, tables de liaison en cas de relations N àN; etc...)
    Je ma lance donc dans la création de requête afin de commencer à essayer de gérer le stock, et là même pas moyen de refaire une somme dans une requête.
    chose que j'avais relativment réussie dans la précédente version.
    Je joins un extrait allégé de cette nouvelle version de la base.
    Dans la table SortieMateriel, je souhaiterai que la requête R_SortiesMaterielInterventions calcul le total de [SommedeQte] par [IdMat].
    En clair, quel est le total de: "AMP LED E14 R50 4.5W 4000", et quel est celui de: "AMP LED E14 R50 5W 3000K" ?
    J'ai essayer plusieurs solutions, mais rien n'y fait, ce n'est pourtant pas bien compliqué, mais cela ne fonctionne pas et je ne comprends pas pourquoi.

    Merci d'avance de votre aide,

    Cordialement,

    Mickaël H.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Je n'ai pas très bien compris ce que tu veux faire. Je comprends que tu n'as joint qu'une partie de ta base de données.
    Tu montres une requête AJOUT R_SortiesMaterielInterventions qui va ajouter des données dans une table alors que dans ton messages tu ne parles que de calcul
    Dans la table SortieMateriel, je souhaiterai que la requête R_SortiesMaterielInterventions calcul le total de [SommedeQte] par [IdMat].
    Normalement, pour déterminer les quantités par Id, tu n'as besoin que d'une requête regroupement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T_DemandesInterventions.IdMat, Sum(T_DemandesInterventions.Qte) AS SommeDeQte, T_DemandesInterventions.Sortie
    FROM T_DemandesInterventions
    GROUP BY T_DemandesInterventions.IdMat, T_DemandesInterventions.Sortie
    HAVING (((T_DemandesInterventions.Sortie)=Yes));
    Ce que tu veux en faire n'est pas clair pour moi et il n'y a pas besoin d'ajouter les valeurs dans une table. Les données de la requête seront toujours à JOUR et tu peux l'utiliser comme source d'un autre objet.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juillet 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2013
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Bonjour Madefemere,

    Affectivement ta requête fonctionne, dans la requête d'origine, il y avait un champs supplémentaire quii spécifiait lors de quelle intervention avait été sortit le matériel, et je pense que c'est à cause de toute ces reférences différentes que cela ne fonctionnait pas.
    Ce que je voudrais faire de ces résultats, c'est les ajouter dans une table [T_SortieMateriel], afin qu'a chaque inventaire (mensuel), toutes les références à sortir ce mois-ci soit dans cette table, avec le numéro d'intervention auxquelles les sorties se rapportent, ce qui permets de continuer à saisir de nouvelles interventions et d'arrêter à la date de l'inventaire les sorties de matériel.
    La requête sommée fonctionne, j'arrive à "ajouter" les résultats à cette table T_SortieMateriel.
    Par contre, est-ce possible d'ajouter un champs qui reprendrait tout les numéros d'interventions auxquels se rapportent les sorties ?
    Je m'explique:
    Dans la table [DemandeIntervention] chaque intervention est repérée par un numéro auto [IdInterDem]
    Est-il possible que dans un champs soit du la requête sommée, soit dans la table [T_SortieMateriel] qui reprenne tout les numéros [IdInterDem] concernant la sortie d'un article.
    Dans l'exemple envoyé, un champs [IdInterDem] reprendrait les N° 6;7;8;9 pour l'article "AMP LED E14 R50 4.5W 4000" et l'enregistrement suivant le champs [IdInterDem] contiendrait 2;5;10 pour l'article "AMP LED E14 R50 5W 3000K".
    Cela nous permettrait de vérifier en cas de doute si la sortie effective ou non d'un matériel concernant cette interventions spécifique a réellementeu lieu, (parfois suite à l'intervention du matériel est de retour en magasin, quelques jours plus tard, donc si ce n'est pas la même personne qui a effectué la sortie qui réintègre le matériel, certaines erreurs arrivent.

    Merci d'avance de ton (votre) aide éventuelle.

    Mickaël H.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Comme je disais, tu n'as posté qu'une partie de ta base donc difficile d'aller plus loin pour apprécier ton application.
    Mais, normalement ce que tu veux faire n'est pas la bonne méthode pour gérer ton inventaire.
    1- Il faudrait mettre dans ta table d'intervention un champ Date d'intervention et à partir de ta table, tu peux faire une requête qui extrait les données entre 2 dates, donc tu as ton inventaire. Pas besoin de transférer tes données dans une table.
    2- De cette requête, tu peux faire un total et trouver tous les matériels sortis et d'autres agrégations d'information.

    Peut-on voir la structure actuelle de ton application (pour avis) et si possible ce que tu veux en faire.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Juillet 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2013
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Alors voilà donc le premier jet de ma base de données "académique" (Soyez indulgent, ce n'est que ma deuxième oeuvre sous access).
    Mon plus gros problème, et la gestion du stock en dynamique.
    Je souhaiterai qu'a chaque fois qu'une quantité de matériel soit saisie dans le champs [Qte] de la table [DemandeIntervention], par le biais du formulaire "Interventions", la quantité de produit correspondante soit immédiatement décompté du [stockActuel] de la table [Materiel], afin que je puisse voir instntannément quel matériel est sous le seuil de réapprovisionnement.
    J'avais tout d'abord pensé à soustraire la valeur du champs [ConsduMois] du champs [StockFinPer] (qui correspond au stock en fin de période précédente,soit le dernier inventaire) C'est vraiment la partie décompte instantané du stock qui me bloque.
    Je n'arrive pas à mettre à jour les données à soustraire.
    Merci d'avance de votre précieuse aide.

    Si vous avez d'autres questions sur le fonctionnement (hypothétique) de ma BDD n'hésitez pas.

    Mickaël H.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculer la somme dan une requête SQL avec JTable
    Par kazan dans le forum Composants
    Réponses: 1
    Dernier message: 30/05/2012, 19h58
  2. Problème de somme dans une requête
    Par Marsupilami23 dans le forum Développement
    Réponses: 3
    Dernier message: 22/06/2011, 13h32
  3. Calcul d'une différence de sommes dans une requête
    Par oohcalme dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 07/07/2008, 11h56
  4. [Access] Calcule par ligne dans une requête
    Par Belze dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/02/2006, 09h09
  5. Calcul de différence dans une requête
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 8
    Dernier message: 19/05/2005, 13h16

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