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 :

Update de deux colonnes à partir de deux bases différentes


Sujet :

Développement SQL Server

  1. #1
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut Update de deux colonnes à partir de deux bases différentes
    Bonjour a tous
    Après moultes recherches, temps passé sur des forums et sites, je décide de venir ici présenter ma problématique en espérant avoir des idées lumineuses de votre part
    j'explique j’utilise un job ssis pour récupérer des informations d'une table nommé informationsbobines vers un table nomé "t_mia" les deux tables sont si tué sue deux bases différentes Suivi_Bobines et l'autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO Suivi_Bobines.dbo.informationsbobines(Id_Etiquette,No_Article,No_Article_Part,No_piece_fabr,Fabricant,Fournisseur
    )
    SELECT     Id_Etiquette, No_Article,No_Article_Part,No_piece_fabr,Fabricant,Fournisseur
     FROM  Conso_cms.dbo.t_mia
     WHERE  id_etiquette not in (select id_etiquette from Suivi_Bobines.dbo.informationsbobines)
    j'ai eu une demande Aujourd’hui qui consiste a remplir a remplir deux colonnes nommé Fournisseur et Fabricant qui ont des valeur "Null" dans la base
    informationsbobines a partir du colonnes Fournisseur et Fabricant de la base Conso_cms et qui possèdent des valeur
    je présenter mes excuse pour cette question très conne mais je suis débutant en Tsql et j’espère avoir une proposition d’idée
    merci pour nos expert
    Images attachées Images attachées  

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Les colonnes étaient à null au moment de l'insertion et ont été renseignée après ?

    Pour réparer, vous pouvez faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE I
    SET		Fabricant = M.Fabricant
    	,	Fournisseur = M.Fournisseur
    FROM	Suivi_Bobines.dbo.informationsbobines I
    INNER JOIN Conso_cms.dbo.t_mia M
    	ON	M.etiquette  = I.etiquette 
    WHERE	I.Fabricant IS NULL
    Si ce cas est fréquent, vous pourriez passer par un MERGE plutôt qu'un INSERT, pour simultanément ajouter les nouvelles lignes et mettre à jour les lignes avec les informations manquantes.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    merci bien pour votre réponse

    ces deux colonnes sont ajouter au extraction suite au demande de l’équipe développement c'est pour cela il ont avant des valeurs NULL
    maintenant le problème qu le nombre des ligne qui vont subit l'update est très important
    je veux modifier le script de telle sorte ajouter une autre condition pour pointer sur la date du création afin de faire l'update par mois
    le problème est que le colonne qui contiens la date nommé date_Creation se trouve dans un troisième table nommé mvTTESTS ou on peut faire leur jointure avec la colonne id_Etiquette

    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
    CREATE TABLE [dbo].[Mvttests](
    	[Id_MvtBobine] [int] IDENTITY(1,1) NOT NULL,
    	[id_Etiquette] [varchar](20) NOT NULL,
    	[Id_Transaction] [int] NOT NULL,
    	[Id_Poste] [int] NOT NULL,
    	[Observation] [nvarchar](50) NULL,
    	[date_Creation] [datetime] NULL,
    	[date_MAJ] [datetime] NULL,
    	[Id_Utilisateur] [int] NULL,
    	[NombrePassage] [int] NULL,
    	[StatutOK] [bit] NULL,
    	[Site] [varchar](2) NULL,
    	[Matricule] [varchar](7) NULL,
     CONSTRAINT [PK_Mvt_Bobine] PRIMARY KEY CLUSTERED 
    (
    	[Id_MvtBobine] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    comment je peux modifier vos script pour ajouter cette condition

    un grand merci pour l'intérêt que vous avez donné à mon problème.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    il suffit de faire une jointure sur cette table, et d'ajouter un filtre

  5. #5
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    peux tu me confirmer si c'est Bon avec cette modification ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    UPDATE I
    SET		Fabricant = M.Fabricant
    	,	Fournisseur = M.Fournisseur
    FROM	Suivi_Bobines.dbo.informationsbobines I
    INNER JOIN Conso_cms.dbo.t_mia M
    	ON	M.id_etiquette  = I.id_etiquette 
    WHERE	I.Fabricant IS NULL  and M.id_etiquette in (select Mvttests.[id_Etiquette]
     from dbo.Mvttests inner join InformationsBobines on InformationsBobines.Id_Etiquette=Mvttests.id_Etiquette inner join dbo.Transactions on Transactions.id_Transaction=Mvttests.Id_Transaction inner join dbo.Postes on Postes.id_Poste=Mvttests.Id_Poste inner join dbo.Lignes on Lignes.Id_Ligne=Postes.Id_Ligne  
     left join dbo.Mvttests_Defauts on Mvttests_Defauts.Id_MvtBobine = Mvttests.Id_MvtBobine  left join dbo.Defauts on Mvttests_Defauts.Id_Defaut = Defauts.Id_Defaut where  (date_Creation  between CONVERT(DATETIME, '2015-06-01 09:05:51', 102) AND CONVERT(DATETIME, '2015-07-01 09:30:51', 102))
     
    )

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    ça parait correct.

    Si vous voulez faire votre update en plusieurs fois, vous pouvez aussi plus simplement faire un

  7. #7
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    Je vous remercie à nouveau pour le temps que vous m’accordez ainsi que votre patience

    a bientôt et bonne journée a toi

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2010, 16h40
  2. Réponses: 5
    Dernier message: 12/07/2010, 14h45
  3. UPDATE d'une Table à partir de deux autres Tables
    Par Marc_27 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/07/2009, 14h13
  4. [A-03] ajout d'une colonne a partir de deux colonnes
    Par atfall dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 16/10/2008, 11h32
  5. Update d'une table à partir de deux autres tables
    Par Peewee766 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/05/2008, 19h08

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