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

Développement SQL Server Discussion :

Question sur UPDATE sur deux tables


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2012
    Messages : 16
    Par défaut Question sur UPDATE sur deux tables
    Bonjour,
    J'ai eu beau chercher sur le forum, je n'ai pas trouver quelque chose qui ressemble à mon petit souci, aussi je me permet de poster un nouveau sujet.

    Voici la situation : je travail sur 2 tables d'un ERP :
    F_ABOENTETE

    les champs qui nous intéressent sont
    AB_No (clé primaire)
    CO_No (valeur a mettre a jour)

    et F_ABOLIGNE

    ici les champs sont
    AB_No (clé primaire strictement identique à celle de F_ABOENTETE),
    CO_No (valeur à mettre à jour),
    AR_Ref (valeur de référence)


    Je sais mettre à jour CO_No dans F_ABOLIGNE en fonction de AR_Ref

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE dbo.F_ABOLIGNE SET CO_No=1 WHERE AR_Ref LIKE '10%'
    Mais par contre je me retrouve coincé dans la table F_ABOENTETE car je n'ai pas AR_Ref.

    Je suis persuadé qu'il y a moyen de récupérer la valeur de AB_No et de s'en servir pour insérer la même valeur que celle présente dans F_ABOLIGNE, mais je n'arrive pas à structurer ma requête ... ça dépasse mes compétences en SQL (acquises sur le tas, je suis Administrateur des ventes, pas ingénieur)

    Merci d'avance de vos lumières et remarques et bonne soirée !

    MisterGinko

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Votre colonne CO_No a une existence soit dans les entêtes, soit dans le détail, mais pas dans les deux.

    J'imagine que dans le détail on peut avoir plusieurs lignes pour une même entête (c'est le principe, sinon on aurait qu'une seule table).

    Imaginez que dans ABOLIGNE pour le même AB_No, j'ai deux CO_No différent.
    Lequel faudrait-il remonter dans ABOENTETE ?

  3. #3
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2012
    Messages : 16
    Par défaut
    Merci pour votre question, c'est un point que je n'avais pas précisé.

    pour résumer, la table F_ABOENTETE est la table des informations d'un abonnement client. D'ou un ID unique avec AB_No.

    La table F_ABOLIGNE corresponds aux lignes présentent dans l'abonnement, donc on peut avoir le même AB_No sur plusieurs lignes. Heureusement, pour un AB_No, on a un CO_No unique.

    Ex :

    F_ABOENTETE

    |AB_No|CO_No|
    |00048|000001|

    F_ABOLIGNE

    |AB_No|CO_No|AR_Ref|
    |00048|000001|10999 |
    |00048|000001|10500 |
    |00049|000002|20200 |

    Mais en effet je comprends la difficulté de faire comprendre que pour un AB_No, on prends la première ligne dans F_ABOLIGNE pour récupérer la valeur de CO_No et l'insérer dans F_ABOENTETE ... j'ai l'impression d'être coincé ...

    j'avais oublié aussi de précisé, je ne peux absolument pas toucher à la structure des tables, ça provient de Sage Ligne 100

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut rep
    Salut,
    Avec SQL Server, il me semble que tu peux utiliser la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE T1
    SET T1.tacolonne = T2.unecolonne
    FROM T2
    INNER JOIN ...
    WHERE ...
    ...
    Tu peux je pense utiliser le mot clé FROM en dessous de l'instruction UPDATE pour mettre à jour ta table.

    Tiens nous au courant.

  5. #5
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2012
    Messages : 16
    Par défaut
    Merci !
    Je ne connais pas encore toutes les subtilités du SQLServer (la plupart des devs chez moi font du MySQL).
    Je teste ça dans la matinée et je vous tiens au courant.

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut rép
    De rien

    Tu peux retrouver la syntaxe de l'UPDATE sur SQLServer avec ce lien :
    http://msdn.microsoft.com/fr-fr/library/ms177523.aspx.

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

Discussions similaires

  1. Liste de sélection sur date entre deux tables
    Par Gazole22 dans le forum QlikView
    Réponses: 3
    Dernier message: 16/07/2013, 12h38
  2. [AC-2003] DCount sur requête de deux tables
    Par Jojo____ dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/04/2012, 08h11
  3. update sur plusieurs lignes avec table temporaire
    Par -=mateo=- dans le forum SQL
    Réponses: 3
    Dernier message: 23/12/2010, 14h40
  4. [Access] Update liant deux tables
    Par zapatta dans le forum Langage SQL
    Réponses: 6
    Dernier message: 14/09/2006, 16h17

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