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 :

Merge et doublons


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Merge et doublons
    Bonjour,

    J'ai une tâche d'import de données à faire en SQL.

    J'utilise un merge.

    Voici la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    MERGE TP_traitement_gapp as TARGET USING 
    (
    SELECT [Société],[Région],[N° Site],[Nom Site],[Identifiant intervention],[Gamme intervention],[Description de l'intervention],[Identifiant tâche],
    [Description],[Etat administratif intervention],[Date début prévu tâche],[Date fin prévu tâche],[Detrompeur],[Entité demandeur],[Infos Demandeur],
    [Indicateur accompagnement],[Code Journalier],[Coupure],[Société Intervenant],[Nom - prénom intervenant],[GSM Intervenant],[Mail Intervenant],[Validé ?],[Accompagnement ?],[Observation ?],[Accès],[Contrainte de sécurité],[V_Couleur],[Caractéristiques de l'intervention],[CO_ACTIVITE],[Sensibilité du site],
    [Approbation automatique AS],[Etat],[Commentaire],[PermisFeu],[DateMaj],[Chef de projet SFR],[Date création intervention (hs)],[Délai],[Sites TDf],[Clés ND],
    [Position Trousseau dans Armoire],[Chargé GAPP],[GénéFichierMajODEON],[Identifiant demande],[Délai Prévenance],[Sites PCTTO],[PlanPrevention],[Appartenance] 
    FROM TempDatatable) as SOURCE ON 
     
    TARGET.[identifiant intervention] = SOURCE.[identifiant intervention] 
    AND TARGET.[identifiant tâche] = SOURCE.[identifiant tâche]
    AND TARGET.[Nom - prénom intervenant] = SOURCE.[Nom - prénom intervenant]  
     
      WHEN MATCHED THEN UPDATE SET TARGET.[Société] = SOURCE.[Société],
      TARGET.[Région] = SOURCE.[Région],TARGET.[N° Site] = SOURCE.[N° Site],
      TARGET.[Nom Site] = SOURCE.[Nom Site],TARGET.[Identifiant intervention] = SOURCE.[Identifiant intervention],
      TARGET.[Gamme intervention] = SOURCE.[Gamme intervention],TARGET.[Description de l'intervention] = SOURCE.[Description de l'intervention],
      TARGET.[Identifiant tâche] = SOURCE.[Identifiant tâche],TARGET.[Description] = SOURCE.[Description],
      TARGET.[Etat administratif intervention] = SOURCE.[Etat administratif intervention],
      TARGET.[Date début prévu tâche] = SOURCE.[Date début prévu tâche],
      TARGET.[Date fin prévu tâche] = SOURCE.[Date fin prévu tâche],TARGET.[Detrompeur] = SOURCE.[Detrompeur],
      TARGET.[Entité demandeur] = SOURCE.[Entité demandeur],TARGET.[Infos Demandeur] = SOURCE.[Infos Demandeur],
      TARGET.[Indicateur accompagnement] = SOURCE.[Indicateur accompagnement],TARGET.[Code Journalier] = SOURCE.[Code Journalier],
      TARGET.[Coupure] = SOURCE.[Coupure],TARGET.[Société Intervenant] = SOURCE.[Société Intervenant],TARGET.[Nom - prénom intervenant] = SOURCE.[Nom - prénom intervenant],
      TARGET.[GSM Intervenant] = SOURCE.[GSM Intervenant],TARGET.[Mail Intervenant] = SOURCE.[Mail Intervenant],
      TARGET.[Validé ?] = SOURCE.[Validé ?],TARGET.[Accompagnement ?] = SOURCE.[Accompagnement ?],TARGET.[Observation ?] = SOURCE.[Observation ?],TARGET.[Accès] = SOURCE.[Accès],
      TARGET.[Contrainte de sécurité] = SOURCE.[Contrainte de sécurité],TARGET.[V_Couleur] = SOURCE.[V_Couleur],
      TARGET.[Caractéristiques de l'intervention] = SOURCE.[Caractéristiques de l'intervention],TARGET.[CO_ACTIVITE] = SOURCE.[CO_ACTIVITE],
      TARGET.[Sensibilité du site] = SOURCE.[Sensibilité du site],TARGET.[Approbation automatique AS] = SOURCE.[Approbation automatique AS],
      TARGET.[Etat] = SOURCE.[Etat],TARGET.[Commentaire] = SOURCE.[Commentaire],TARGET.[PermisFeu] = SOURCE.[PermisFeu],TARGET.[DateMaj] = SOURCE.[DateMaj],
      TARGET.[Chef de projet SFR] = SOURCE.[Chef de projet SFR],TARGET.[Date création intervention (hs)] = SOURCE.[Date création intervention (hs)],
      TARGET.[Délai] = SOURCE.[Délai],TARGET.[Sites TDf] = SOURCE.[Sites TDf],TARGET.[Clés ND] = SOURCE.[Clés ND],
      TARGET.[Position Trousseau dans Armoire] = SOURCE.[Position Trousseau dans Armoire],TARGET.[Chargé GAPP] = SOURCE.[Chargé GAPP],
      TARGET.[GénéFichierMajODEON] = SOURCE.[GénéFichierMajODEON],TARGET.[Identifiant demande] = SOURCE.[Identifiant demande],TARGET.[Délai Prévenance] = SOURCE.[Délai Prévenance],
      TARGET.[Sites PCTTO] = SOURCE.[Sites PCTTO],TARGET.[PlanPrevention] = SOURCE.[PlanPrevention],TARGET.[Appartenance] = SOURCE.[Appartenance]
     
     WHEN NOT MATCHED 
     THEN  INSERT ([Société],[Région],[N° Site],[Nom Site],[Identifiant intervention],[Gamme intervention],[Description de l'intervention],[Identifiant tâche],[Description],[Etat administratif intervention],[Date début prévu tâche],[Date fin prévu tâche],[Detrompeur],[Entité demandeur],[Infos Demandeur],[Indicateur accompagnement],[Code Journalier],[Coupure],[Société Intervenant],[Nom - prénom intervenant],[GSM Intervenant],[Mail Intervenant],[Validé ?],[Accompagnement ?],[Observation ?],[Accès],[Contrainte de sécurité],[V_Couleur],[Caractéristiques de l'intervention],[CO_ACTIVITE],[Sensibilité du site],[Approbation automatique AS],[Etat],[Commentaire],[PermisFeu],[DateMaj],[Chef de projet SFR],[Date création intervention (hs)],[Délai],[Sites TDf],[Clés ND],[Position Trousseau dans Armoire],[Chargé GAPP],[GénéFichierMajODEON],[Identifiant demande],[Délai Prévenance],[Sites PCTTO],[PlanPrevention],[Appartenance]) VALUES (SOURCE.[Société],SOURCE.[Région],SOURCE.[N° Site],SOURCE.[Nom Site],SOURCE.[Identifiant intervention],SOURCE.[Gamme intervention],SOURCE.[Description de l'intervention],SOURCE.[Identifiant tâche],SOURCE.[Description],SOURCE.[Etat administratif intervention],SOURCE.[Date début prévu tâche],SOURCE.[Date fin prévu tâche],SOURCE.[Detrompeur],SOURCE.[Entité demandeur],SOURCE.[Infos Demandeur],SOURCE.[Indicateur accompagnement],SOURCE.[Code Journalier],SOURCE.[Coupure],SOURCE.[Société Intervenant],SOURCE.[Nom - prénom intervenant],SOURCE.[GSM Intervenant],SOURCE.[Mail Intervenant],SOURCE.[Validé ?],SOURCE.[Accompagnement ?],SOURCE.[Observation ?],SOURCE.[Accès],SOURCE.[Contrainte de sécurité],SOURCE.[V_Couleur],SOURCE.[Caractéristiques de l'intervention],SOURCE.[CO_ACTIVITE],SOURCE.[Sensibilité du site],SOURCE.[Approbation automatique AS],SOURCE.[Etat],SOURCE.[Commentaire],SOURCE.[PermisFeu],SOURCE.[DateMaj],SOURCE.[Chef de projet SFR],SOURCE.[Date création intervention (hs)],SOURCE.[Délai],SOURCE.[Sites TDf],SOURCE.[Clés ND],SOURCE.[Position Trousseau dans Armoire],SOURCE.[Chargé GAPP],SOURCE.[GénéFichierMajODEON],SOURCE.[Identifiant demande],SOURCE.[Délai Prévenance],SOURCE.[Sites PCTTO],SOURCE.[PlanPrevention],SOURCE.[Appartenance]);
    J'importe des lignes .csv.

    Au 2eme import de 4 lignes ( qui sont presque identitiques au 1er import, au lieu d'updater les données il insére des lignes)

    Donc au lieu d'avoir 4 lignes modifiées, je me retrouve avec 8 lignes

    Ma requête est-elle mal faite ?

    Que dois je vérifier ?

    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 803
    Points
    30 803
    Par défaut
    Ta requête semble correctement écrite.
    La seule raison pour laquelle il pourrait ajouter les lignes au lieu de les mettre à jour, ce serait que les identifiants ne correspondent pas entre les deux chargements.
    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
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Bonjour Al1_24,

    Les identifiants sont les mêmes entre les deux chargements.

    Sur 49 colonnes, il y en qu'une seule de différente

    Je comprends pas

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    J'ai trouvé l'erreur

    C'étaient les deux fichiers importés qui ne correspondaient pas

    J'ai honte de moi

    Désolé

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

Discussions similaires

  1. [2008] Problème Merge et Doublon
    Par vbcasimir dans le forum Développement
    Réponses: 3
    Dernier message: 11/04/2014, 11h59
  2. doublon au niveau de Merge Join
    Par kssillati dans le forum Visual Studio
    Réponses: 1
    Dernier message: 27/01/2011, 10h35
  3. [1.1] Merge DataSet avec doublon
    Par Monstros Velu dans le forum C#
    Réponses: 0
    Dernier message: 12/12/2008, 15h03
  4. Merge avec deux vector, sans doublons ?
    Par b Oo dans le forum SL & STL
    Réponses: 8
    Dernier message: 06/11/2006, 23h00
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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