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

MS SQL Server Discussion :

update champs avec les champs de la meme colonne ?


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut update champs avec les champs de la meme colonne ?
    Bonjour
    soit la table suivante : emolument

    employe exercice salaire

    frank 2010 210000
    frank 2009 810000
    frank 2008 750000
    john 2010 210000
    john 2008 410000
    fred 2010 270000
    fred 2007 290000

    on veut mettre a jour la colonne salaire pour les exercices d'avant 2010(2009,2008 etc..) pour chaque employé avec son salaire de 2010
    quelle est la requete SQL à appliquer??
    merci

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE E_AVANT_2010
    SET E_AVANT_2010.salaire=E_2010.SALAIRE
    FROM emolument E_AVANT_2010
       INNER JOIN emolument E_2010
          ON E_2010.employe=E_AVANT_2010.employe 
             AND E_2010.exercice=2010
    WHERE E_AVANT_2010.exercice<2010

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut
    merci de me fournir des explications sur cette solution...sur sql server
    la table : emolument
    les colonnes : employe exercice et salaire


    exemple

    frank 2010 1000
    frank 2009 5000

    et on veut aboutir à:


    frank 2010 1000
    frank 2009 1000

  4. #4
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    merci de me fournir des explications sur cette solution...sur sql server
    C'est exactement ce que j'ai fait

    La syntaxe est un peu avancée certes mais elle equivaut à cette autre requète que vous comprendrez plus aisement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    UPDATE emolument
    SET salaire=(SELECT salaire
                      FROM emolument A
                      WHERE A.exercice=2010
                         AND A.employe=emolument.employe)
    WHERE exercice<2010
       AND EXISTS(SELECT *
                      FROM emolument A
                      WHERE A.exercice=2010
                         AND A.employe=emolument.employe)

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut
    merci pour votre aide iberserk

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    De rien... bonne mise à jour a vous...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/10/2005, 11h26
  2. Problème avec les champs de type table
    Par devdev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/12/2004, 16h05
  3. Probleme avec les champs du formulaire
    Par Red_devils dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 29/09/2004, 13h06
  4. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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