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 :

Copier / Coller SQL


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Débutant
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Copier / Coller SQL
    Bonjour à tous,

    Je souhaite copier coller une valeur d'un champs suivant un champs et le coller dans un champs suivant un autre champs dans le même table
    J'utilise la requete ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update AAAAA set
    BBBBBB=(select BBBBBB where CCCCCC='214120')
    where CCCCCC='214125'
    Mais il ne mets NULL en valeur au lieu de la valeur copier

    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Il manque la clause FROM dans la sous-requête scalaire...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Débutant
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    On avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update AAAAA set
    BBBBB=(select BBBBB from AAAAA where CCCCCC ='214120' and DDDDD='XXXXXX')
    where CCCCC='214125'
    and DDDDD='XXXXXX'
    Mais il faudrait qu'il réalise le update quand les champs DDDDD sont identiques et sur tous les champs DDDDD de la table
    Merci d'avance

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Il suffit de faire une jointure entre les deux table. Dans ton cas, comme tu utilises la même table en source et en cible, il faut impérativement utiliser des alias sur les tables pour identifier l'origine des colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    update AAAAA    tgt
    set BBBBB   =
            (   select  BBBBB
                from    AAAAA   src
                where   src.CCCCCC  = '214120'
                    and src.DDDDD   = tgt.DDDDD
            )
    where   tgt.CCCCC   = '214125'
    --  and tgt.DDDDD   = 'XXXXXX'
    ;
    Utiliser des alias reste toujours une bonne pratique, même avec des tables différentes. Cela rend les requêtes plus lisibles et par conséquences plus faciles à maintenir
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Débutant
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Ca ne marche pas, il me renvoie le message d'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Msg 102, Niveau 15, État 1, Ligne 1
    Syntaxe incorrecte vers 'tgt'.
    Msg 156, Niveau 15, État 1, Ligne 8
    Syntaxe incorrecte vers le mot clé 'where'.
    Alors j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update AAAAA
    set tgt.BBBBB=(select src.BBBBB from AAAAA where src.CCCCC='214120' and tgt.DDDDD=src.DDDDD)
    where tgt.CCCCC='214125'and tgt.DDDDD=src.DDDDD
    Tjrs pas....

    J'espere que je me suis fais comprendre:
    Je souhaite recupérer la valeur BBBBB de CCCCC='214120' ( 1er ligne ) et la mettre à CCCCC='214125' ( 2eme ligne ) quand DDDDD ( 1er ligne) =DDDDD ( 2eme ligne ) et cela sur toute la table ( c'est à dire dès qu'il rencontre un CCCCC='214120' d'un DDDDD )

    Merci d'avance

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    J'avais oublié que SQL Server utilisait une syntaxe particulière pour les mises à jour avec jointure
    Dans ton cas, ça donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    update  tgt
    set tgt.BBBBB   = src.BBBBB
    from    AAAAA   as  tgt
        inner join
            AAAAA   as  src
            on  src.DDDDD   = tgt.DDDDD
    where   src.CCCCCC  = '214120'
        and tgt.CCCCC   = '214125'
    ;
    PS : J'ai utilisé tgt et src comme nom d'alias parce que, selon moi, cela rend la requête plus claire mais j'aurai tout aussi bien pu les nommer abc ou wxy
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Débutant
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Parfait

    PS: J'étais surpris que je ne trouvais pas de déclaration alias - je sais maintenant à peut prêt faire un "inner join"

    Un grand merci
    A bientot

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

Discussions similaires

  1. Copier/coller de SQL Manag vers Excel
    Par Angeljo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/01/2013, 14h43
  2. Plantage d'access 2010 sur copier coller dans SQL de requêtes
    Par clickandgo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/05/2012, 00h58
  3. copier/coller colonne excel vers colonne table sql
    Par jalalnet dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/09/2011, 00h44
  4. Copier de SQL-Coller dans ACCESS
    Par lesguignols dans le forum VBA Access
    Réponses: 11
    Dernier message: 04/02/2009, 11h46
  5. [SQL] Copier / coller dans un textarea
    Par wiLBuzz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/08/2007, 12h05

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