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 MySQL Discussion :

Update sur une table avec somme sur éléments de ses propres lignes


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut Update sur une table avec somme sur éléments de ses propres lignes
    Bonjour,

    Je dois faire un update sur les lignes d'une table ou je fais la somme des attributs de la ligne.
    Le select interne fonctionne.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    update month as month_orig
    join 	 ( SELECT id , qcm_case_id, ( month_1_main 
    									+ month_2_main 
    									+ month_3_main 
    									+ month_4_main 
    									+ month_5_main 
    									+ month_6_main 
    									+ month_7_main 
    									+ month_8_main 
    									+ month_9_main 
    									+ month_10_main 
    									+ month_11_main 
    									+ month_12_main)
    			as line_Sum
    			FROM month) as month_copie
    on 	 month_orig.id = month_copie.id
    set month_orig.main_total = month_copie.line_Sum
    HeidiSQL me donne l'erreur suivante :

    /* SQL Fehler (1054): Unknown column 'AGG_OBSERVATION_MONTH_tbl_selec.id' in 'on clause' */
    /* Affected rows: 0 Gefundene Zeilen: 0 Warnungen: 0 Dauer von 0 of 1 query: 0,000 sec. */
    Cela doit venir des alias, avant j'avais une autre erreur dessus que j'ai corrigé en ajoutant le as month_copie, mais sur lequel j'ai aussi des doutes.

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    D'expérience, les jointures et les updates de tables ne sont pas une très bonne idées.

    Pourquoi ne fait tu pas avec une sous requête de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    update month as month_orig
    	set month_orig.main_total = (select ( month_1_main 
    			+ month_2_main 
    			+ month_3_main 
    			+ month_4_main 
    			+ month_5_main 
    			+ month_6_main 
    			+ month_7_main 
    			+ month_8_main 
    			+ month_9_main 
    			+ month_10_main 
    			+ month_11_main 
    			+ month_12_main)
    		FROM month as month_sum
    		where month_sum.id = month_orig.id);
    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Hello,

    J'ai essayé mais j'ai ce message d'erreur avec :


    /* SQL Fehler (1093): Table 'agg_observation_month' is specified twice, both as a target for 'UPDATE' and as a separate source for data */
    /* Affected rows: 0 Gefundene Zeilen: 0 Warnungen: 0 Dauer von 0 of 1 query: 0,000 sec. */

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Et plus bêtement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    update month set main_total = (month_1_main 
    			+ month_2_main 
    			+ month_3_main 
    			+ month_4_main 
    			+ month_5_main 
    			+ month_6_main 
    			+ month_7_main 
    			+ month_8_main 
    			+ month_9_main 
    			+ month_10_main 
    			+ month_11_main 
    			+ month_12_main);
    ?
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    La dernière est la bonne.
    Comment est-ce que l'on peut s'obliger à faire simple.

    Merci pour la peine

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/07/2015, 14h17
  2. Réponses: 5
    Dernier message: 10/12/2012, 12h20
  3. Export d'une table avec condition sur une autre
    Par Hobbi1 dans le forum Import/Export
    Réponses: 2
    Dernier message: 25/03/2010, 14h35
  4. Requete SUM sur une table avec critère sur une autre
    Par wail00 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/05/2007, 16h58
  5. [Access] Requête sur une table et tri sur une autre
    Par VooDooS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/08/2006, 15h07

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