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 :

Update avec une jointure


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Update avec une jointure
    Bonsoir tout le monde, je suis vraiment coincée et je n'ai pas encore trouvé une solution et j'aimerais bien que vous m'aidiez. Alors mon schéma est le suivant :
    j'ai 3 tables : personne, demandes et etat_demandes et je veux faire un update sur un champ de la table demandes avec une condition de la table personne donc je suis obligée une jointure voila la requête que j'ai écrite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    update demandes d 
    join inner personne p on d.n__dossier=p.n__dossier
    set d.code_etat_demades='5'
    where d.code_etat_demades='5'
    and ((sysdate-d_icorrporation)>=10);
    il me dit qu'il y a une erreur
    mot cle SET absent
    je ne trouve plus de solution
    et merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    Pour commencer, la syntaxe de Update est "en gros" la suivante : UPDATE <TABLE> SET <MISEAJOUR> WHERE <CONDITIONS> (http://docs.oracle.com/cd/B19306_01/..._statement.htm)

    Donc ta requête doit commencer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE demandes d 
    Set d.code_etat_demades='5'
    Pour la suite, j'ai un peu de mal à comprendre ce que tu veux faire puisque ta mise à jour de la table Demandes (d.code_etat_demades='5') est aussi une condition du "Where"...

    En tout cas, voici une requête dont la syntaxe est correcte (si la colonne "d_icorrporation" appartient à Personne, il faut mettre la condition dans la sosu-reqête Exists)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE demandes d 
    Set d.code_etat_demades='5'
    WHERE d.code_etat_demades='5'
    AND (sysdate-d.d_icorrporation)>=10
    AND Exists (Select 1 From personne p Where d.n__dossier=p.n__dossier);

  3. #3
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup de votre réponse, en fait je me suis trompée, set d.code_etat_demandes='1' et pas '5';
    et puis d-icorrporation appartient à la table personne pas demandes je dois la mettre dans exists !!!!!
    je vais essayer votre requête.

  4. #4
    Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ça marche merci beaucoup
    j'ai utilisé la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE demandes d
    SET d.code_etat_demandes='5'
     WHERE d.code_etat_demandes='1'
    AND EXISTS (SELECT p.d_icorrporation FROM personne p 
    WHERE d.n__dossier=p.n__dossier
    and trunc(to_number(sysdate-p.d_icorrporation)/365)>=10);
    et merci de votre aide
    bonne journée

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

Discussions similaires

  1. Update avec une jointure externe
    Par feldi dans le forum SQL
    Réponses: 2
    Dernier message: 08/02/2012, 11h33
  2. Update avec une jointure
    Par Tinfolley dans le forum SQLite
    Réponses: 2
    Dernier message: 17/11/2009, 13h10
  3. [VB] faire un update avec une bdd en xml
    Par ekmule dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/02/2006, 22h41
  4. Update avec une sous requête
    Par Deejoh dans le forum Installation
    Réponses: 7
    Dernier message: 25/01/2006, 11h50
  5. Faire un update avec une ss requete renvoyant plusieur row
    Par djodjo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/09/2005, 15h51

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