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 d'après 2 tables avec ordre de date


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut update d'après 2 tables avec ordre de date
    bonjour,
    je souhaite savoir s'il est possible avec un seul UPDATE de mettre à jour une table en fonction d'une autre, en tenant compte de l'ordre des dates présentes dans les 2 tables...

    pour exemple (simplifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CREATE TABLE evenement
    (id INTEGER,
     jour DATE,
     taux DECIMAL(6,2),
     CONSTRAINT PK_evenement PRIMARY KEY (id))
     
    CREATE TABLE taux_evolution
    (id INTEGER,
     date_evo DATE,
     cout DECIMAL(6,2),
     nb_h DECIMAL(6,2),
     CONSTRAINT PK_evenement PRIMARY KEY (id))
    la table 'evenement' est une succession de jour; la table 'taux_evolution' retrace l'evolution du taux suivant la date.
    donc, je veux pouvoir mettre à jour le champ 'taux' de la table 'evenement' en interrogeant la table 'taux_evolution' et le champ ('cout / nb_h'), en fonction du champ 'jour' qui doit être compris entre 2 dates 'date_evo1' et 'date_evo2', si 'date_evo2' > 'date_evo1'.

    j'avais dans un premier temps fait çà en php, en interrogeant d'abord la table 'taux_evolution' classée par 'date_evo', puis pour chaque ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE evenement SET taux='".$resultat_taux."' WHERE jour >= '".$resultat_date_evo."'
    puis, j'avais essayé en une seule requète SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE evenement AS e, taux_evolution AS t 
    SET e.taux = (t.cout / t.nb_h)
    WHERE e.jour >= t.date_evo
    mais évidemment ça marche pour une seule date_evo rentrée; au delà de 2, il faut les prendre par ordre chrono, etc...
    peut-être en remplaçant le t.date_evo par un SELECT?

    merci de votre aide, et désolé pour cette explication un peu confuse...

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut
    bonjour j'ai du mal à comprendre ce que tu veux...
    Mais n'est il pas possible de faire cela avec une procédure, fonction?

Discussions similaires

  1. AUTO-Incrémentation de données de table avec ordre précis
    Par DelphiBeginner dans le forum Développement
    Réponses: 13
    Dernier message: 20/01/2015, 14h14
  2. Chargement de tables avec ordre de tri
    Par arnest dans le forum QlikView
    Réponses: 2
    Dernier message: 12/09/2014, 15h46
  3. Update plusieurs Champs de Table avec un Record
    Par argoet dans le forum PL/SQL
    Réponses: 8
    Dernier message: 02/04/2009, 14h33
  4. [HQL] Update HQL sur une table avec Id composite
    Par Eccoon dans le forum Hibernate
    Réponses: 5
    Dernier message: 02/04/2007, 12h10
  5. Insertion,update dans une BD à table avec beaucoup de champs
    Par randriano dans le forum C++Builder
    Réponses: 29
    Dernier message: 13/03/2007, 19h11

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