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
    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
    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 782
    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 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    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 +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  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, 10h35
  2. Requête UPDATE avec jointure
    Par petburn dans le forum SQL
    Réponses: 7
    Dernier message: 30/07/2007, 14h22
  3. [UPDATE] avec jointure sur une requete
    Par userB dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/07/2007, 16h18
  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, 20h31
  5. [PL/SQL] update avec jointure
    Par Fox_magic dans le forum Oracle
    Réponses: 6
    Dernier message: 09/12/2004, 12h19

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