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 à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Problème Update requêtes imbriquées
    Bonjour à tous,

    J'ai besoin d'un peu d'aide, j'essaie de faire un update par rapport à un select que j'ai. Je sèche un peu sur la syntaxe et comment adapter tout ça. En gros je veux faire une retro alimentation d'une table sur plusieurs colonnes.
    j'ai fait la requête pour avoir toutes les lignes (données) qui me serviront pour la mise à jour.
    voilà mon code sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT SG_NETKPI.CALLID, Max(SG_NETKPI.OPERATEUR) AS OPERATEUR, Max(SG_NETKPI.ACCES_ORIGINE) AS ACCES_ORIGINE, Max(SG_NETKPI.ZONE_ORIGINE) AS ZONE_ORIGINE, Max(SG_NETKPI.DPT) AS DPT
    FROM SG_NETKPI 
    WHERE (
    (SG_NETKPI.LEG='TLEG') AND ((SG_NETKPI.OPERATEUR Is Not Null) OR (SG_NETKPI.ACCES_ORIGINE Is Not Null) OR (SG_NETKPI.ZONE_ORIGINE Is Not Null) OR (SG_NETKPI.DPT Is Not Null))
    ) AND KPI_MONTH BETWEEN '201801' AND '201809'
    GROUP BY SG_NETKPI.CALLID;
    A_ALIMENTER je vais appeler comme ça la table suite à ma requête SQL plus haut.

    voilà mon code update:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE SG_NETKPI INNER JOIN A_ALIMENTER
    ON SG_NETKPI.CALLID = A_ALIMENTER.CALLID 
    SET _SG_NETKPI.OPERATEUR = A_ALIMENTER.OPERATEUR, 
    SG_NETKPI.ACCES_ORIGINE = A_ALIMENTER.ACCES_ORIGINE, 
    SG_NETKPI.ZONE_ORIGINE = A_ALIMENTER.ZONE_ORIGINE, 
    SG_NETKPI.DPT = A_ALIMENTER.DPT;
    Je ne sais pas comment faire marcher mon update. Comment faire ma jointure entre mon SQL et le UPdate.
    Si quelqu'un peut m'aider. Merci d'avance.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Regardez du côté de MERGE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     merge into sg_netkpi   tgt
     using (<votre select>) src
        on (src.callid = tgt.callid)
      when matched then update
       set tgt.OPERATEUR     = src.OPERATEUR
         , tgt.ACCES_ORIGINE = src.ACCES_ORIGINE
         , tgt.ZONE_ORIGINE  = src.ZONE_ORIGINE
         , tgt.DPT           = src.DPT;
    Edit : AS dans les alias de table et requête supprimés.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Merci Waldar, je vais essayer ce que tu me conseilles là!
    je te redis.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Hello Waldar, alors j'ai essayé avec le merge mais ça ne marche pas, j'ai un problème de syntaxe je pense. car j'ai une erreur oracle QL : ORA-02012: missing USING keyword
    02012. 00000 - "missing USING keyword"

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Essayez en enlevant les "as" avant tgt et src :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     merge into sg_netkpi   tgt
     using (<votre select>) src
        on (src.callid = tgt.callid)
    ...

  6. #6
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    ma requête seule me renvoie des données, par contre quand je la met dans le MERGE j'ai une erreur oracle sur la syntaxe.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    oracle signale une erreur sur le as tgt comme s'il ne veut pas qu'on donne un nom à la table, il veut que je mettes directement USING après le as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    merge into sg_netkpi   as tgt
     using (ma requête) as src
        on (src.callid = tgt.callid)
      when matched then update
       set tgt.OPERATEUR     = src.OPERATEUR
         , tgt.ACCES_ORIGINE = src.ACCES_ORIGINE
         , tgt.ZONE_ORIGINE  = src.ZONE_ORIGINE
         , tgt.DPT           = src.DPT;

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    (sinon vous pouvez aussi lire ma réponse au lieu de poster sans lire)

  9. #9
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Ah oui désolée je n'avais pas vu la réponse merci.

  10. #10
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Merci Waldar, ça marche nickel, merci beaucoup pour ton aide.

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

Discussions similaires

  1. Problème Update requêtes imbriquées
    Par freaka75 dans le forum SQL
    Réponses: 3
    Dernier message: 18/01/2019, 17h30
  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 mehdiing 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