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 :

Update inner join (select sum())


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut Update inner join (select sum())
    Bonjour,

    je veux faire la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update table1 inner join (select chp1, sum(val1) as v from table2 group by chp1) as t on (table1.chp1 = t.chp1) set table1.val = t.v
    mais il m'affiche l'erreur suivante :

    l'opération doit utiliser une requête qui peut être mise à jour
    par contre la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1 inner join (select chp1, sum(val1) as v from table2 group by chp1) as t on (table1.chp1 = t.chp1)
    marche.

    comment faire ????

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir,
    une question qui a déjà été posée il y a quelques jours et qui a sa réponse ici http://www.developpez.net/forums/d13...update-select/
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    Merci pour votre repense mais ça ne répond pas à ma requête,

    Par exemple ma table 1 contient les champs suivant avec les valeurs :
    I1 val1
    I2 val2
    Ma deuxième table 2 contient les champs avec les valeurs :
    I1 i11 val1
    I1 i12 val2
    I2 i21 val3
    I2 i22 val4
    Ma requête c'est de modifier al valeur val1de la table 1 avec val1+val2 de la table 2, on prend id comme clé de jointure, et val2 = val3+val4.

    j espère que ça sera plus claire.

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir kika10
    Citation Envoyé par kika10 Voir le message
    Merci pour votre repense mais ça ne répond pas à ma requête
    ah bon ?
    1) cela explique ton message d'erreur :
    l'opération doit utiliser une requête qui peut être mise à jour
    2) cela te donne une méthode pour mettre à jour un champ à partir d'une somme. Il faut juste que tu l'adaptes à ton cas avec un minimum de réflexion.
    Je rappelle que c'est un forum où on aide les personnes, on ne fait pas leur travail...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    j'ai utilisé la fonction dsum, mais elle me donne la somme totale pas la somme par groupe, j'ai essayé de grouper le résultat dans la fonction dsum mais elle m'affiche un message d'erreur, voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE  table1 SET val = val + dsum("val1","table2",table1.id & "=table2.id");
    même avec une sélection ça marche pas avec groupe.

    Merci.

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 254
    Points : 123
    Points
    123
    Par défaut
    bonjour,

    j'ai trouvé la solution, il manquait un quote dans la jointure par ce que dans ma jointure j'ai des champs de type texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE  table1 SET val = val + dsum("val1","table2","table2.id= '" & table1.id & "' And table2.nom= '" & table1.nom & "");

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

Discussions similaires

  1. Update INNER JOIN
    Par nats76 dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/12/2012, 12h22
  2. Sql update inner join
    Par Jcpan dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/07/2010, 16h20
  3. Update + inner join
    Par lungzatar dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/03/2009, 11h20
  4. SQL inner join select temps d'éxécution
    Par binouzzz19 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/10/2007, 15h50
  5. Inner Join & Select
    Par bakaneko dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/02/2004, 11h48

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