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 d'UPDATE à partir d'un SUM d'une autre table


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 41
    Points : 37
    Points
    37
    Par défaut Problème d'UPDATE à partir d'un SUM d'une autre table
    Bonjour à tous,

    je suis en train de me faire des cheveux blancs depuis ce matin.
    Histoire de gagner du temps dans la mise à jour de mes données, je souhaite modifier mes lignes de commandes de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set Rst = Cn.Execute("select keys from A where rc_ncr = 'RC' and xdate is null") 
    While Rst.EOF <> True
        Set Rst_ = New ADODB.Recordset
        Set Rst_ = Cn.Execute("select keys, actions, duration from B where keys = '" & Rst(0) & "' and duration is not null")
        While Rst_.EOF <> True
            If Rst_(1) Like "*Eval*" Or Rst_(1) Like "*review*" Then
                TAT1 = TAT1 + Rst_(2)
            End If
            Rst_.MoveNext
        Wend
        Cn.Execute ("update Concessions set TAT_Eval = " & TAT1 & " where keys = '" & Rst(0) & "'")
        Rst.MoveNext
    wend
    en simple update
    j'ai cru comprendre qu'un DSUM s'imposait.
    j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Cn.Execute ("update concessions set tat_eval = dsum(""duration"", ""workflow"", ""keys=concessions.keys and (actions like '%eval%' or actions like '%review%')"") where rc_ncr='rc' and xdate is null")
    mais j'ai comme message d'erreur "trop peu de paramètres. 1 attendu."

    mais là... je ne vois pas...

    vous auriez des tuyaux ?...

    Flobuzz

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    concessions.keys est une variable et de ce fait doit être en dehors de la phrase SQL (à quelques doubles apostrophes près):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cn.Execute ("update concessions set tat_eval = dsum(""duration"", ""workflow"", ""keys="" & concessions.keys & "" and (actions like '%eval%' or actions like '%review%')"") where rc_ncr='rc' and xdate is null")
    le mieux c'est encore de passer par une variable pour construire la phrase SQL car on peut la visualiser avant l'exécution (avec Debug.Print)
    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 ?

Discussions similaires

  1. [AC-2003] Recupérer un taux a partir d'un indice d'une autre table
    Par Shikam dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/05/2010, 16h22
  2. Réponses: 11
    Dernier message: 18/01/2010, 11h29
  3. Réponses: 1
    Dernier message: 28/04/2008, 16h47
  4. Réponses: 1
    Dernier message: 04/10/2007, 16h35
  5. Réponses: 2
    Dernier message: 08/05/2006, 12h22

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