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

SQL Oracle Discussion :

problème requete update


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut problème requete update
    Hello,

    J'ai un problème avec une requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE CONTRAT c
    SET c.MONTANT_CONTRAT = 
    (
    SELECT m.MONTANT  
    FROM MONTANTS m 
    WHERE m.CONTRAT_ID = c.CONTRAT_ID
    and m.MONTANT_DATE=(select max(m1.EXE_EXECDATE) from MONTANTS m1 where m1.CONTRAT_ID=c.CONTRAT_ID)
    )
    WHERE EXISTS (SELECT 1 FROM MONTANTS m WHERE m.CONTRAT_ID = c.CONTRAT_ID);
    J'ai une l'erreur suivante :

    SQLState: 42000
    ErrorCode: 904
    Position: 82
    Error: ORA-00937: la fonction de groupe ne porte pas sur un groupe simple
    Je ne vois pas d'où peut provenir cette erreur car dans ma sous-requete je n'ai qu'une expression de groupe (max) mais pas de champs individuels.

    Des idées ??

    Merci

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Je pense que le problème vient de m1.CONTRAT_ID=c.CONTRAT_ID car oracle ne connait pas c.CONTRAT_ID, tu es un niveau trop bas.
    Comme tu as déjà m.CONTRAT_ID = c.CONTRAT_ID essaie avec m1.CONTRAT_ID=m.CONTRAT_ID
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE CONTRAT c
    SET c.MONTANT_CONTRAT = 
    (
    SELECT m.MONTANT  
    FROM MONTANTS m 
    WHERE m.CONTRAT_ID = c.CONTRAT_ID
    AND m.MONTANT_DATE=(SELECT max(m1.EXE_EXECDATE) FROM MONTANTS m1 WHERE m1.CONTRAT_ID=m.CONTRAT_ID)
    )
    WHERE EXISTS (SELECT 1 FROM MONTANTS m WHERE m.CONTRAT_ID = c.CONTRAT_ID);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    Merci pour ta réponse.

    En fait je me suis un peu emmeler les pinceaux... C'était l'erreur 1427 que j'ai eu en fait :
    ORA-1427: single-row subquery returns more than one row
    Ce qui est plus logique...

    Du coup je m'en suis sorti en rajoutant un max :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE CONTRAT c
    SET c.MONTANT_CONTRAT = 
    (
    SELECT max(m.MONTANT)  
    FROM MONTANTS m 
    WHERE m.CONTRAT_ID = c.CONTRAT_ID
    AND m.MONTANT_DATE=(SELECT max(m1.EXE_EXECDATE) FROM MONTANTS m1 WHERE m1.CONTRAT_ID=c.CONTRAT_ID)
    )
    WHERE EXISTS (SELECT 1 FROM MONTANTS m WHERE m.CONTRAT_ID = c.CONTRAT_ID);
    Ce qui reste cohérent avec mon modèle.

    Merci

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

Discussions similaires

  1. [MySQL] Problème : requete UPDATE avec '&' à insérer
    Par Figno dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/10/2011, 04h37
  2. [AC-2003] Problème Requete Update
    Par Nheil dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/05/2010, 15h13
  3. [MySQL] Problème requete UPDATE
    Par mikael2235 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2010, 08h33
  4. [SS2005] Problème requete update
    Par sdisp+ dans le forum Langage SQL
    Réponses: 17
    Dernier message: 02/06/2009, 17h48
  5. Problème requete update
    Par krfa1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/03/2005, 08h47

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