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

Langage SQL Discussion :

requête UPDATE avec agrégat


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut requête UPDATE avec agrégat
    Bien le bonjour tout le monde,

    Voilà, je développe une petite applic sous SQL Server / MS Access et j'aimerais mettre à jour un champ d'une table avec des données d'une seconde table!

    La table cible liste des ordres de fabrications (OF).
    La table source liste toutes les opérations de tous les OF et indique le temps nécessaire pour chaque opération.

    J'aimerais ici sommer les temps pour avoir le total temps par OF et l'insérer dans ma table des OF.

    Voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE  tb_temp_liste_OF
    SET of_temps_tot = (SELECT     SUM(tb_temp_temps.tps_tot_of) AS of_temps_tot
                        FROM        tb_temp_temps LEFT OUTER JOIN
                                   tb_temp_liste_OF AS tb_temp_liste_OF_1 ON tb_temp_temps.tps_of_num = tb_temp_liste_OF_1.of_num
                        GROUP BY   tb_temp_temps.tps_of_num)
    Avec ce code j'obtiens l'erreur suivante :
    La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.
    Je comprends l'erreur mais ne sais pas du tout comment régler le problème alors si l'un ou l'autre d'entre vous avez une idée, je prends!

    Voili merci et bonne journée à tous

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 434
    Points
    28 434
    Par défaut
    Et comme ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE  tb_temp_liste_OF
    SET     of_temps_tot = 
            (   SELECT  SUM(tb_temp_temps.tps_tot_of) AS of_temps_tot
                FROM    tb_temp_temps 
                WHERE   tb_temp_temps.tps_of_num = tb_temp_liste_OF.of_num
            --  GROUP BY tb_temp_temps.tps_of_num   /* Pas indispensable */
            )

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    Yep, ça marche très bien!!

    C'est vrai que c'est tout de même beaucoup plus simple de faire la jointure comme ça!!

    Merci beaucoup pour ton aide et bonne fin de journée

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

Discussions similaires

  1. Requête update avec un select
    Par housni dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/08/2007, 00h22
  2. Requête UPDATE avec jointure
    Par petburn dans le forum SQL
    Réponses: 7
    Dernier message: 30/07/2007, 14h22
  3. Réponses: 5
    Dernier message: 10/07/2006, 12h05
  4. Requête UPDATE avec variables...
    Par yokyok dans le forum Outils
    Réponses: 2
    Dernier message: 18/05/2006, 10h37
  5. [VB.NET] [ODBC] Pb requête UPDATE avec clé primaire..?
    Par Pleymo dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/03/2005, 18h46

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