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 :

Mettre a jour un champ a partir de la somme d'un autre champ


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Employé administratif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Points : 21
    Points
    21
    Par défaut Mettre a jour un champ a partir de la somme d'un autre champ
    Bonjour

    Je cherche a mettre a jour un champ d'une table 1 avec la somme d'un autre champ d'une table 2
    Comme la requete calculant la somme sur la table 2 est un agrégat, je ne peux pas la mettre a jour. Et du coup la requete de mise a jour qui en dépend ne peut pas metre a jour ma table 1.
    Comment pourais-je procéder ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    salut,
    peux-tu nous donner le SQL de la somme, qu'on voit comment on peut l'adapter à ton update stp ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Employé administratif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    bonjour

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Sum(TEvenement.MontantB) AS SommeDeMontantB, TEvenement.NumExercice
    FROM TEvenement
    GROUP BY TEvenement.NumExercice
    ORDER BY TEvenement.NumExercice;

    J'ai ensuite une requete mise a jour pour croiser ce résultat avec ma table 1.
    Et là ca bloque !

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    oki,
    je suppose que la table1 et la table2 sont liées par le champ NumExercice ?
    une jointure dans l'update non ?

    edit : sujet déjà résolu ici il me semble http://www.developpez.net/forums/sho...d.php?t=498769

  5. #5
    Membre à l'essai
    Homme Profil pro
    Employé administratif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Oui c'est bien la liaison
    Pour l'ancien topic, je n'arrive pas a faire le parallele avec mon cas. Dois-je utiliser VBA ou rester sur des requetes

  6. #6
    Membre à l'essai
    Homme Profil pro
    Employé administratif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    J'ai tenté d'adapter la requete par rapport a l'ancien topic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE RCalculSommeEvennementBrut INNER JOIN Requête5 ON RCalculSommeEvennementBrut.NumExercice=Requête5.NumExercice SET Requête5.TotEvennBrut = RCalculSommeEvennementBrut.sommeDeMontantB
    ;

    Il me répond toujour
    l'opération doit utiliser une requete qui peut etre mise a jour
    Quid ??

  7. #7
    Membre à l'essai
    Homme Profil pro
    Employé administratif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Employé administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Le probleme viens bien de la fonction Somme qui empeche la mise a jour.
    Est ce que quelqu'un a une idée ?

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2007
    Messages : 85
    Points : 68
    Points
    68
    Par défaut
    Salut,

    Cela ressemble à un problème que j'ai eu récemment.

    Tu peux peut-être aller voir vers

    http://www.developpez.net/forums/sho...hlight=xorbane

    En utilisant les fonction de regroupement domaine, dans ton cas Dsum pourrait faire l'affaire. L'idée c'est d'integrer ce que fait ta première requête (la somme) directement dans ta requête de mise à jour ce qui pourrait donner un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Table1 INNER JOIN Table2 ON Table1.num=Table2.num SET Table1.somme=Dsum('champ_à_additionner','table2','num'=+Cstr([Table1].[num]));
    Attention, mes champs 'num' étaient des string si tu as des champs numériques, il faut probablement adapter - enlever le Cstr suffira peut-être?


    Xorbane.

Discussions similaires

  1. Mettre a jour une table a partir d'une autre table
    Par kaayna dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/02/2010, 09h59
  2. mettre a jour une dropdownlist a partir d'une popup
    Par polo86 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 20/08/2009, 11h55
  3. [AJAX] remplissage des champs a partir d'une donne dans un autre champ
    Par zied.ellouze dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/02/2009, 10h07
  4. Mettre a jour une JCombobox a partir d'une autre JCombobox
    Par palacio dans le forum Composants
    Réponses: 3
    Dernier message: 16/11/2008, 12h23
  5. Réponses: 5
    Dernier message: 02/08/2006, 13h29

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