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 :

Problème insertion donnée dans une table


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
    Chef de projet MOA
    Inscrit en
    Janvier 2019
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2019
    Messages : 32
    Par défaut Problème insertion donnée dans une table
    Bonjour,

    j'aimerai ajouter des données dans une table depuis une table temporaire.

    Cette table temporaire comprend les données venant de fichiers avec un bulk insert.

    J'ai une autre table qui comprend ces colonnes la : SIT, JUS, Libellé

    La colonne SIT + JUS correspond à un code de 6 caractères et le libellé concerne la signification du code.

    Mon problème est que je n'arrive pas à renseigner le libellé en fonction du code ..

    Voici comment j'ai procédé actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    INSERT INTO Pivot.dbo.dlHeppnerFiles 
    					SELECT DISTINCT	Ligne
    							,SUBSTRING(ligne,1,6) AS NumCEGID
    							,CONVERT(datetime,(SUBSTRING(Ligne,38,6)),103) AS DateStatut								
    							,SUBSTRING(ligne,44,3) AS SIT
    							,SUBSTRING(ligne,47,3) AS JUS
    							, CASE WHEN (SUBSTRING(ligne,44,3) + '' + SUBSTRING(ligne,47,3)) =  (SIT +''+ JUS)  THEN Libelle_fr END --Colonne définissant le libelle du code à retourner
    							 ,GETDATE()
    							,DateModif=NULL
    							,DateTrsCRM=NULL
    					FROM #ImportHeppner
    					inner JOIN [Pivot].[dbo].[dlCodeHeppner] as CH on SUBSTRING(#ImportHeppner.Ligne,44,3)=CH.SIT
    					WHERE @LigneFichier = Ligne AND SUBSTRING(ligne,1,6) LIKE '2%' OR SUBSTRING(ligne,1,6) LIKE '1%'
    Merci,

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 484
    Par défaut
    Bonjour,
    Tu nous indiques que le table cible ne possède que 3 colonnes, alors que le SELECT en renvoie 9.
    Ensuite tu ne spécifies pas les colonnes dans l'INSERT, donc on ne sait pas trop quelle valeur est affectée à quelle colonne.

    Enfin tu ne nous dis pas ce qui ne va pas: une erreur ? (laquelle) Aucune donnée insérée ?

    Tatayo.

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2019
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2019
    Messages : 32
    Par défaut
    Bonjour,

    merci de votre retour,

    Pour être plus clair les données de mes fichiers sont envoyés avec bulk Insert dans la table temporaire #ImportHeppner.

    La table qui ne possède que 3 colonnes est une table ou sont enregistré les codes avec leurs intitulés.

    Ce que j'aimerai faire c'est si le code de mon fichier correspond à un code enregistré dans la table des codes, alors je retourne le libellé.

    Sauf que quand je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    , CASE WHEN (SUBSTRING(ligne,44,3) + '' + SUBSTRING(ligne,47,3)) =  (SIT +''+ JUS)  THEN Libelle_fr END
    il n'y a rien dans ma colonne..

    Pourtant je définis bien si le code de mon fichier correspond au code de ma table code alors j'affiche son libelle..

    Merci

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 138
    Par défaut
    A moins qu'il existe des colonnes nommées SIT et JUS dans l'une des tables requêtées, l'expression de la ligne 7 ne peut être calculée à partir des colonnes définies aux lignes 5 et 6 et la requête tombe en erreur.
    Pourquoi concaténer une chaine vide entre les deux parties des expressions de la ligne 7 ?
    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.

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

Discussions similaires

  1. Problème insert BOOLEAN dans une table temporaire
    Par jslpfasc2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/12/2015, 20h53
  2. Insertion données dans une table
    Par Willyson dans le forum Access
    Réponses: 8
    Dernier message: 20/08/2015, 16h37
  3. [MySQL] Problème insertion données dans la table
    Par michgoarin dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/12/2014, 01h08
  4. [MySQL] problème insertion donnée dans une table
    Par thebestxav dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/04/2011, 21h01
  5. [Oracle] problème d'insertion de données dans une table sous oracle
    Par Zombiman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2009, 15h58

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