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 :

Importer des donnée d'une table a une autre


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Importer des donnée d'une table a une autre
    Salut à tous je travaille sur un outil de synthèse pour aider le SAV d'une entreprise de fabrication de pièce d'avion.
    Pour ca je dois pouvoir récupérer les informations relative à une pièce qui sont disséminées sur plusieurs tables SQL (SQL Server Management Studio sous Windaube)
    qui sont pas méga propres ( pas de vrai clé primaire, des données qui correspondent pas forcément d'une table à une autre etc,etc)
    Du coup j'ai décidé de me faire une table avec tout ce que je peut regrouper ensemble
    Voila comment je m'y prend au début pour créer ma table

    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
     
    CREATE TABLE [PARADEMODW].[dbo].[EXTRACT_CR] 
    (
    	Part_No NVARCHAR(25) NOT NULL,
    	Supplier NVARCHAR(25),
    	SO_No NVARCHAR(25),
    	SO_Line_No INT,
    	Due_Date datetime2,
    	Invoice_No INT,
    	Delivery_Note_No INT,
    	Release_Note_No NVARCHAR(25),
    	Purchase_Order_No NVARCHAR(25),
    	Work_Order_No NVARCHAR(25),
    	GRN_No NVARCHAR(25),
    	MSN_No NVARCHAR(25)
    )
    Voila ce que je fais ensuite pour récupérer la réference des pièces, leur numéros de vente (Sales Order ou SO)
    et la ligne de vente du Sale Order (SO_Line_No). Et la date accesoirement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO [PARADEMODW].[dbo].[EXTRACT_CR] (Part_No, SO_No, SO_Line_No, Due_Date)
    SELECT Part_No, SO_No, SO_Line_No, Due_Date
    FROM [PARADEMODW].[dbo].[SO_Items];
    Ces trois informations ENSEMBLE constitue ce qui se rapproche le plus d'une clé primaire.
    Le soucis c'est lorsque je vais récuperer dans une deuxième table la Release Note, Delivery Note et le numéro de facture (Invoice)
    Voila ce que j'ai fait avec en commentaire des pistes que j'ai trouvé sur d'autre discussions mais qui n'ont pas arrangé mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UPDATE [PARADEMODW].[dbo].[EXTRACT_CR]/*, [PARADEMODW].[dbo].[Invoice_Detail] */
    SET [PARADEMODW].[dbo].[EXTRACT_CR].[Invoice_No]       = [PARADEMODW].[dbo].[Invoice_Detail].[Invoice_No],
    	[PARADEMODW].[dbo].[EXTRACT_CR].[Delivery_Note_No] = [PARADEMODW].[dbo].[Invoice_Detail].[Del_Note_No],
    	[PARADEMODW].[dbo].[EXTRACT_CR].[Release_Note_No]  = [PARADEMODW].[dbo].[Invoice_Detail].[Release_Note_No]
    /*FROM [PARADEMODW].[dbo].[EXTRACT_CR] , [PARADEMODW].[dbo].[Invoice_Detail] */
    WHERE [PARADEMODW].[dbo].[EXTRACT_CR].[Part_No]        = [PARADEMODW].[dbo].[Invoice_Detail].[Part] 
      AND [PARADEMODW].[dbo].[EXTRACT_CR].[SO_No]          = [PARADEMODW].[dbo].[Invoice_Detail].[SO] 
      AND [PARADEMODW].[dbo].[EXTRACT_CR].[SO_Line_No]     = [PARADEMODW].[dbo].[Invoice_Detail].[Line_No]
    Le soucis c'est que je me tape ce message d'erreur

    Msg*4104, Niveau*16, État*1, Ligne*6
    L'identificateur en plusieurs parties "PARADEMODW.dbo.Invoice_Detail.Part" ne peut pas être lié.
    Msg*4104, Niveau*16, État*1, Ligne*7
    L'identificateur en plusieurs parties "PARADEMODW.dbo.Invoice_Detail.SO" ne peut pas être lié.
    Msg*4104, Niveau*16, État*1, Ligne*8
    L'identificateur en plusieurs parties "PARADEMODW.dbo.Invoice_Detail.Line_No" ne peut pas être lié.


    Est ce que ça veut dire que je dois faire un SELECT entre parenthèse a la place de juste ça "PARADEMODW.dbo.Invoice_Detail.Line_No"?
    Si oui comment ? Parce que tout ce que j'ai fait a pas eu l'air de fonctionner ?

    Merci d'avance aux braves qui me répondront.
    Garder le feu brûlant dans votre cœur

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Il serait sans doute temps de savoir faire des jointures et de connaître la notion d'alias !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE T
    SET  [Invoice_No]       = D.[Invoice_No],
    	 [Delivery_Note_No] = D.[Del_Note_No],
    	 [Release_Note_No]  = D.[Release_Note_No]
    FROM [dbo].[EXTRACT_CR] AS T
          JOIN [dbo].[Invoice_Detail] AS D
          ON T.[Part_No]        = D.[Part] 
             AND T.[SO_No]      = D.[SO] 
             AND T.[SO_Line_No] = D.[Line_No]
    De plus pourquoi rajouter une notation pointée avec le nom du serveur et la base de données ???? Pourquoi pas aussi le dns et la planète terre ?????????????????

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    En plus de ce que vous propose SQLPro, la signification de l'erreur "L'identificateur en plusieurs parties "..." ne peut pas être lié." signifie :
    • Soit que la table que vous spécifiez n'est pas référencée dans la requête
    • Soit que l'alias de table ou de vue que vous avez spécifié n'existe pas dans la requête


    Comme ce n'est pas la 2e possibilité ...
    Par ailleurs, comme le nom des colonnes que vous utilisez respecte les normes de nommage des identificateurs, vous pouvez vous dispenser des crochets

    @++

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Il serait sans doute temps de savoir faire des jointures et de connaître la notion d'alias !
    Euh pour ça c'est parce que je suis un con et que j'ai tricher a tout mes contrôles de SQL
    (Vous pouvez vous moquez de moi et me pointez du doigt pour que je me sente rejeté si vous voulez)

    De plus pourquoi rajouter une notation pointée avec le nom du serveur et la base de données ???? Pourquoi pas aussi le dns et la planète terre ?????????????????
    Et pour ça je blâme les requêtes SQL des gens qui on bossez avant moi et qui m'ont induit en erreur
    (Et si c'est pas ça se référer au premier chapitre de ce post)

    MAIS le plus important c'est que ça marche nickel et que je vous remercie tous de votre patience et je vais donc clore ce sujet.
    Merci a tous
    Biz

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    C'est mon côté terminator....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/07/2013, 16h24
  2. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  3. Réponses: 1
    Dernier message: 18/01/2013, 23h19
  4. Réponses: 1
    Dernier message: 13/12/2010, 14h31
  5. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29

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