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 Update requêtes imbriquées


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2017
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Septembre 2017
    Messages : 22
    Par défaut Problème Update requêtes imbriquées
    Bonjour à tous,

    Cela doit être simple mais je n'arrive pas à adapter un update par rapport à un select que j'ai produit,
    je doit mettre à jour un champ dans lequel il y a la valeur "ECO" par 'null' selon les conditions de mon select.

    Avec le select, j'ai les résultats que j'attends mais lorsque j'essaie de faire un update j'ai le message d'erreur : "Erreur SQL : ORA-00913: trop de valeurs
    00913. 00000 - "too many values"

    voici mon select :
    Code sql : 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
    19
    20
     
    select distinct
    p.GP_REFINTERNE,
    p.gp_depot,
    p.GP_NUMERO,
    p.GP_NATUREPIECEG
    from piece p,
    (select distinct
    GP_REFINTERNE,
    MEJ_CDEECOMSUIVI
    from MPIECEECO,
    PIECE
    where MEJ_NATUREPIECEG = GP_NATUREPIECEG 
    AND MEJ_SOUCHE=GP_SOUCHE 
    AND MEJ_NUMERO=GP_NUMERO 
    and MEJ_CDEECOMSUIVI = '013'
    and GP_NATUREPIECEG = 'CC') d
    where  p.GP_REFINTERNE=d.GP_REFINTERNE
    and p.GP_NATUREPIECEG in ( 'RDI')
    AND p.GP_TYPEPROVENANCE = 'ECO'

    et voici mon update :

    Code sql : 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
    19
    20
    21
    22
    23
    update piece
    set GP_TYPEPROVENANCE = 'null'
    WHERE GP_REFINTERNE in (
    select distinct
    p.GP_REFINTERNE,
    p.gp_depot,
    p.GP_NUMERO,
    p.GP_NATUREPIECEG
    from piece p,
    (select distinct
    GP_REFINTERNE,
    MEJ_CDEECOMSUIVI
    from MPIECEECO,
    PIECE
    where MEJ_NATUREPIECEG = GP_NATUREPIECEG 
    AND MEJ_SOUCHE=GP_SOUCHE 
    AND MEJ_NUMERO=GP_NUMERO 
    and MEJ_CDEECOMSUIVI = '013'
    and GP_NATUREPIECEG = 'CC') d
    where  p.GP_REFINTERNE=d.GP_REFINTERNE
    and p.GP_NATUREPIECEG in ( 'RDI')
    AND p.GP_TYPEPROVENANCE = 'ECO' 
    )

    svp si quelqu'un peut m’éclairer

    Merci d'avance

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

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    4 colonnes sont sélectionnées dans le IN, il n'en faut qu'une

  3. #3
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Houla, j'ai l'impression que ton SELECT imbriqué est faux...

    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    update piece
    set GP_TYPEPROVENANCE = 'null'
    WHERE GP_REFINTERNE in (
    select distinct
    p.GP_REFINTERNE,
    p.gp_depot,
    p.GP_NUMERO,
    p.GP_NATUREPIECEG
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update piece
    set GP_TYPEPROVENANCE = 'null'
    WHERE GP_REFINTERNE in (
    select distinct
    p.GP_REFINTERNE
    pour synchroniser le champ GP_REFINTERNE avec UNE seule valeur.

  4. #4
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2017
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Septembre 2017
    Messages : 22
    Par défaut
    Merci bien , effectivement il faut synchroniser une seule valeur

    bonne fin de journée

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

Discussions similaires

  1. Problème de requêtes imbriquées, possible sous Access ?
    Par PierrePM dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 14/11/2007, 19h45
  2. problème sur requête imbriqué
    Par Dam1en dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/10/2007, 16h55
  3. problème de requête imbriquées
    Par Invité dans le forum SQL
    Réponses: 11
    Dernier message: 30/07/2007, 08h51
  4. [MySQL] problème de requête imbriquée
    Par amarcil dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/04/2007, 15h04
  5. [MySQL] problème de requêtes imbriquées
    Par xave dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/01/2007, 13h30

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