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

MS SQL Server Discussion :

[SQL2000] Manque adregat liste def Update


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 219
    Par défaut [SQL2000] Manque adregat liste def Update
    Bonjour a tous,

    j'ai un problème avec la requette suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    update tblbible_bib
    set bib_costcumulusd=sum(bib2.BIB_CostMensuelUsd)
     
    from tblbible_BIB BIB
    left outer join tblbible_BIB BIB2 
    	on BIB2.BIB_GL = BIB.BIB_GL 
    		and BIB2.BIB_costcenter = BIB.BIB_costcenter
    		and bib2.BIB_Year = BIB.BIB_Year
    		and BIB2.Bib_Month <= BIB.BIB_Month
     
     
    Where BIB.BIB_Closed = 0 or BIB.BIB_Closed is null
    group by bib.bib_gl,bib.bib_costcenter
    le serveur SQL me répond :
    Il manque un agrégat dans la liste de définition d'une instruction UPDATE.

    par contre si je fais une requette select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select bib.bib_gl,bib.bib_costcenter,sum(bib2.BIB_CostMensuelUsd)
     
    from tblbible_BIB BIB
    left outer join tblbible_BIB BIB2 
    	on BIB2.BIB_GL = BIB.BIB_GL 
    		and BIB2.BIB_costcenter = BIB.BIB_costcenter
    		and bib2.BIB_Year = BIB.BIB_Year
    		and BIB2.Bib_Month <= BIB.BIB_Month
     
     
    Where BIB.BIB_Closed = 0 or BIB.BIB_Closed is null
    group by bib.bib_gl,bib.bib_costcenter
    qui marche parfaitement et me donne un bon résultat

    Je ne sais pas comment faire la requette pour la mise à jour

    Merci pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut
    bonjour,
    pourquoi ne pas faire quelque chosse comme ca

    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
     
    UPDATE tblbible_bib
    SET bib_costcumulusd= (
    SELECT sum(bib2.BIB_CostMensuelUsd)
     
    FROM tblbible_BIB BIB
    LEFT OUTER JOIN tblbible_BIB BIB2 
    	ON BIB2.BIB_GL = BIB.BIB_GL 
    		AND BIB2.BIB_costcenter = BIB.BIB_costcenter
    		AND bib2.BIB_Year = BIB.BIB_Year
    		AND BIB2.Bib_Month <= BIB.BIB_Month
     
     
    WHERE BIB.BIB_Closed = 0 OR BIB.BIB_Closed IS NULL
    GROUP BY bib.bib_gl,bib.bib_costcenter
    )
    enfin à testé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 219
    Par défaut
    Merci pour ton aide,

    j'ai fait une tentative mais j'obtiens le message suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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.
    Avertissement : la valeur nulle est éliminée par un agrégat ou par une autre opération définie.
    L'instruction a été arrêtée.
    J'ai aussi du modifier la requette pour quel ne traite que les lignes qui m'interresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    UPDATE tblbible_bib
    SET bib_costcumulusd= (
    SELECT sum(bib2.BIB_CostMensuelUsd)
     
    FROM tblbible_BIB BIB
    LEFT OUTER JOIN tblbible_BIB BIB2 
    	ON BIB2.BIB_GL = BIB.BIB_GL 
    		AND BIB2.BIB_costcenter = BIB.BIB_costcenter
    		AND bib2.BIB_Year = BIB.BIB_Year
    		AND BIB2.Bib_Month <= BIB.BIB_Month
     
    GROUP BY bib.bib_gl,bib.bib_costcenter
    )
    WHERE BIB_Closed = 0 OR BIB_Closed IS NULL
    mais cela n'a pas d'influence sur l'erreur

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 219
    Par défaut
    Bonjour

    Quelqu'un aurait une idée car je bloque complet sur ce process que je dois rendre Lundi.

    Merci pour votre aide

Discussions similaires

  1. Form en liste et update multiple
    Par vivian.maes dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 16/03/2010, 12h51
  2. Effectuer une liste d'update
    Par antonius_marcus dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/04/2008, 13h25
  3. [SQL2000]Création d'un trigger update
    Par zooffy dans le forum Développement
    Réponses: 6
    Dernier message: 29/10/2007, 14h39
  4. Réponses: 2
    Dernier message: 24/08/2007, 13h37
  5. [Sql2000] Verrouiller une liste d'enregistrement
    Par jojo-la-praline dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/05/2006, 10h11

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