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

Langage SQL Discussion :

Update avec jointure


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Points : 54
    Points
    54
    Par défaut Update avec jointure
    Bonjour,

    j'ai 2 tables agences et suivi_AG et je cherche a modifier un champ en fonction de plusieurs critères

    agences.lieux=suivi_AG.lieux
    agences.com=suivi_AG.commande
    agences.dates=suivi_AG.dsaisie

    je cherche à modifier le champ de la colonne agences.dates si celui si est différent de suivi_AG.dsaisie.

    voila mon code qui m'indique que cela ne se termine pas correctement!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update D set D.dates= trunc(sysdate) from agences as D inner join suivi_AG as C on D.com=C.commande where C.lieux='nantes' and C.dsaisie= trunc(sysdate) and D.dates!= trunc(sysdate)
    Avez-vous une idée?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Quel est votre SGBD (nom et version) ?
    Je dirai Oracle à la vue du sysdate.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Beaucoup d'horreur dans cette requête :
    1) on ne peut pas indiquer d'alias dans la table cible d'une mise à jour
    2) de ce fait dans la partie gauche de la clause UPDATE (c'est à dire avant le =) vous ne pouvez pas avoir de colonne aliassées
    3) différente de s'exprime par <> et non pas !=
    4) la fonction pour indiquer une date est CURRENT_DATE et non pas trunc(sysdate)
    5) la jointure entre table cible de la mise à jour et les autres tables doit se faire par IN ou EXISTS et pour IN si plusieurs colonnes doivent être jointes, utiliser un ROW VALUE CONSTRUCTOR.

    Bref, apprenez la langage SQL. Mon livre, comme mon site web, peuvent vous y aider !

    En appliquant tout cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE agences 
       SET dates = CURRENT_DATE
    WHERE  com IN (SELECT commande 
                   FROM   suivi_AG 
                   WHERE  C.lieux='nantes' 
                     AND  C.dsaisie= CURRENT_DATE)
     AND  dates <> CURRENT_DATE
    A +

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Points : 54
    Points
    54
    Par défaut
    Oui je confirme c'est bien oracle 10g

    En allant sur ce site, c'est ce que je cherche à faire!

    Merci pour vos conseilles!

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

Discussions similaires

  1. UPDATE avec jointure
    Par warning dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 13/12/2007, 11h35
  2. Requête UPDATE avec jointure
    Par petburn dans le forum SQL
    Réponses: 7
    Dernier message: 30/07/2007, 15h22
  3. [UPDATE] avec jointure sur une requete
    Par userB dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/07/2007, 17h18
  4. Requete update avec jointure d'une requête
    Par bart64 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 28/05/2007, 21h31
  5. [PL/SQL] update avec jointure
    Par Fox_magic dans le forum Oracle
    Réponses: 6
    Dernier message: 09/12/2004, 13h19

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